//package com.cbgolf.oa.activity.publiz;
//
//import android.content.Intent;
//import android.content.pm.PackageManager;
//import android.net.Uri;
//import android.os.Build;
//import android.os.Bundle;
//import android.provider.Settings;
//import android.support.v4.content.ContextCompat;
//import android.support.v4.widget.DrawerLayout;
//import android.util.Log;
//import com.alibaba.sdk.android.push.CommonCallback;
//import com.amap.api.location.AMapLocation;
//import com.cbgolf.oa.R;
//import com.cbgolf.oa.activity.bill.ShoppingActivity;
//import com.cbgolf.oa.activity.coupon.CouponActivity;
//import com.cbgolf.oa.activity.message.MessageActivity;
//import com.cbgolf.oa.activity.message.MessageCenterActivity;
//import com.cbgolf.oa.activity.order.OrderActivity;
//import com.cbgolf.oa.activity.order.OrderDetailsActivity;
//import com.cbgolf.oa.activity.parkdetails.ParkMapActivity;
//import com.cbgolf.oa.activity.permission.PermissionCheckActivity;
//import com.cbgolf.oa.activity.result.ScoreCardActivity;
//import com.cbgolf.oa.activity.statistics.StatisticsActivity;
//import com.cbgolf.oa.activity.statistics.TeetimeActivity;
//import com.cbgolf.oa.app.App;
//import com.cbgolf.oa.app.AppManager;
//import com.cbgolf.oa.base.BaseActivity;
//import com.cbgolf.oa.entity.ParkBean;
//import com.cbgolf.oa.event.EventMenus;
//import com.cbgolf.oa.event.EventMsg;
//import com.cbgolf.oa.event.EventOrder;
//import com.cbgolf.oa.event.EventPark;
//import com.cbgolf.oa.manager.DataManager;
//import com.cbgolf.oa.manager.DialogManager;
//import com.cbgolf.oa.manager.DialogManager.IDialogManagerWaiter;
//import com.cbgolf.oa.manager.LocationManager.ILocationWaiter;
//import com.cbgolf.oa.manager.MenuManager;
//import com.cbgolf.oa.manager.OrderManager;
//import com.cbgolf.oa.manager.WsStompManager;
//import com.cbgolf.oa.manager.WsStompManager.IWsManagerWaiter;
//import com.cbgolf.oa.model.MainModel;
//import com.cbgolf.oa.presenter.IMainPresenter;
//import com.cbgolf.oa.service.LocationService;
//import com.cbgolf.oa.user.User;
//import com.cbgolf.oa.user.UserData;
//import com.cbgolf.oa.util.ClassUtil;
//import com.cbgolf.oa.util.CollectionUtil;
//import com.cbgolf.oa.util.DataUtil;
//import com.cbgolf.oa.util.EnumUtil;
//import com.cbgolf.oa.util.PermissionUtils;
//import com.cbgolf.oa.util.StatusBarUtil;
//import com.cbgolf.oa.util.UpdateManager;
//import com.cbgolf.oa.util.Util;
//import com.cbgolf.oa.viewbean.OrderBean;
//import com.cbgolf.oa.views.MainView;
//import com.yzq.zxinglibrary.android.CaptureActivity;
//import com.yzq.zxinglibrary.bean.ZxingConfig;
//import com.yzq.zxinglibrary.common.Constant;
//import org.greenrobot.eventbus.EventBus;
//import org.greenrobot.eventbus.Subscribe;
//import org.greenrobot.eventbus.ThreadMode;
//import org.xutils.DbManager;
//import org.xutils.ex.DbException;
//import org.xutils.x;
//
///**
// * @author lq
// * @date 2017/11/3
// */
//
//public class MainActivity extends BaseActivity
//    implements IMainPresenter,
//    UpdateManager.IVersionWorker, ILocationWaiter, IWsManagerWaiter {
//
//  private MainView view;
//  private MainModel model;
//  private boolean isOnce = true;
//  private boolean isSendSuccess;
//  //var
//  private int mStatusBarColor;
//
//  private int[] mTypes = new int[]{
//      DataManager.STATISTICS_BUSINESS_ALL, DataManager.STATISTICS_BOOK_ALL,
//      DataManager.STATISTICS_CADDIE_ALL, DataManager.STATISTICS_BILL_ALL,
//      DataManager.STATISTICS_PLAYER_ALL
//  };
//  private ParkBean mParkData;
//
//  @Override
//  protected void onCreate(Bundle savedInstanceState) {
//    super.onCreate(savedInstanceState);
//    setContentView(R.layout.a_main);
//    EventBus.getDefault().register(this);
//    WsStompManager.getInstance().init();
//
//  }
//
//
//  @Override
//  protected void onDestroy() {
//    super.onDestroy();
//    if (null != locationIntent) {
//      stopService(locationIntent);
//    }
//    WsStompManager.getInstance().release();
//    EventBus.getDefault().unregister(this);
//  }
//
//  @Override
//  protected void findViews() {
//    view = new MainView(this, this);
//    model = new MainModel(this);
//  }
//
//  @Override
//  protected void onResume() {
//    super.onResume();
//    initLocation();
//    AppManager.getNewInstance().finishOthersActivity(this);
//    model.getUserInfo();
//    model.getShowModel(isOnce);
//    model.getMsgCount();
//    model.getFirWayLatlon();
//    checkVersion();
//    bindPush();
//
//  }
//
//  private void bindPush() {
//    if (null != App.pushService && !Util.isNull(DataUtil.getUserId())) {
//      App.pushService.bindAccount(DataUtil.getUserId(), new CommonCallback() {
//        @Override
//        public void onSuccess(String s) {
//          App.pushBindSuccess = true;
//        }
//
//        @Override
//        public void onFailed(String s, String s1) {
//          App.pushBindSuccess = false;
//        }
//      });
//    }
//    WsStompManager.getInstance().reconnect();
//    WsStompManager.getInstance().setWorker(this);
//    WsStompManager.getInstance().sendLatLngStomp();
//  }
//
//  @Subscribe(threadMode = ThreadMode.MAIN)
//  public void requestOver(EventOrder event) {
//    view.confirmOrderOver(event);
//  }
//
//  @Subscribe(threadMode = ThreadMode.MAIN)
//  public void requestOver(EventMsg event) {
//    view.requestMsgOver(event);
//  }
//
//  @Subscribe(threadMode = ThreadMode.MAIN)
//  public void requestOver(EventMenus event) {
//    isOnce = false;
//    view.requestOver(event);
//  }
//
//  @Subscribe(threadMode = ThreadMode.MAIN)
//  public void requestLatlngOver(EventPark event) {
//    if (null == event || event.msgTarget != DataManager.PARK_MAP_LATLON_MAIN) {
//      return;
//    }
//    mParkData = event.parkBean;
//    WsStompManager.getInstance().setParkBean(mParkData);
//  }
//
//  private Intent locationIntent;
//
//  private void initLocation() {
//    if (!PermissionUtils.hasAllLocationPermission()) {
//      showPermissionDialog(PermissionUtils.getLocationNeedPermission(),
//          PermissionUtils.getLocationPermissionNames(), REQUEST_LOCAION_PERMISSIONS);
//    } else {
//      locationIntent = new Intent(this, LocationService.class);
//      startService(locationIntent);
//      LocationService.setWorker(this);
//      LocationService.startLocation();
//    }
//  }
//
//  private UpdateManager updateManager;
//
//  //检查是否有新版本
//  public void checkVersion() {
//    if (null == updateManager) {
//      updateManager = new UpdateManager(context, this, 0);
//    }
//    updateManager.checkUpdate();
//  }
//
//  @Override
//  protected void setStatusBar() {
//    mStatusBarColor = getResources().getColor(R.color.transparent);
//    StatusBarUtil.setColorForDrawerLayout(this, (DrawerLayout) findViewById(R.id.drawer_layout),
//        mStatusBarColor, 0);
//  }
//
//  @Override
//  protected void onKeyBack() {
//    moveTaskToBack(true);
//  }
//
//  @Override
//  public String getActivityTitle() {
//    return DataUtil.getCourseName();
//  }
//
//  @Override
//  public void back() {
//
//  }
//
//  @Override
//  public void showProgress() {
//    view.showProgress();
//  }
//
//  @Override
//  public void stopProgress() {
//    view.stopProgress();
//  }
//
//  @Override
//  public void getDataFail(String msg) {
//    isOnce = false;
//    view.showError(msg);
//  }
//
//  @Override
//  public void getDataSuccess(Object obj) {
//    isOnce = false;
//    view.showData(obj);
//  }
//
//
//  @Override
//  public void setUserInfo() {
//    view.setUserInfo();
//  }
//
//  @Override
//  public void showMessage() {
//    mStartActivity(MessageCenterActivity.class);
//  }
//
//  private final int REQUEST_QR_CODE = 0xfff;
//
//  @Override
//  public void gotoQrCodeActivity() {
////    mStartActivity(QrCodeActivity.class);
//    if (!PermissionUtils.hasAllCameraPermission()) {
//      DialogManager.getInstance().showRequestPermissionDialog(this,
//          PermissionUtils.getLocationPermissionNames(),
//          new IDialogManagerWaiter() {
//            @Override
//            public void doSubmit() {
//              requestPermission(PermissionUtils.getCameraNeedPermission());
//            }
//
//            @Override
//            public void doCancel() {
//              finish();
//            }
//          });
//    } else {
//
//      /*ZxingConfig是配置类  可以设置是否显示底部布局，闪光灯，相册，是否播放提示音  震动等动能
//       * 也可以不传这个参数
//       * 不传的话  默认都为默认不震动  其他都为true
//       * */
//      Intent intent = new Intent(this, CaptureActivity.class);
//      ZxingConfig config = new ZxingConfig();
//      config.setShowbottomLayout(false);//底部布局（包括闪光灯和相册）
//      config.setPlayBeep(false);//是否播放提示音
//      config.setShake(true);//是否震动
//      config.setShowAlbum(true);//是否显示相册
//      config.setShowFlashLight(true);//是否显示闪光灯
//      intent.putExtra(Constant.INTENT_ZXING_CONFIG, config);
//      startActivityForResult(intent, REQUEST_QR_CODE);
//    }
//  }
//
//  @Override
//  public void quitOA() {
//    if (null != UserData.getUser()) {
//      DbManager db = x.getDb(App.getDaoConfig());
//      try {
//        db.delete(User.class);
//        db.dropTable(User.class);
//      } catch (DbException e) {
//        e.printStackTrace();
//      }
//      try {
//        UserData.setUser(null);
//      } catch (Exception e) {
//
//      }
//    }
//    if (null != App.pushService) {
//      App.pushService.unbindAccount(new CommonCallback() {
//        @Override
//        public void onSuccess(String s) {
//          App.pushBindSuccess = false;
//        }
//
//        @Override
//        public void onFailed(String s, String s1) {
//
//        }
//      });
//    }
//    mStartActivity(LoginActivity.class);
//    ClassUtil.finish(this);
//  }
//
//  @Override
//  public void showOrderDetails(OrderBean bean) {
//    ClassUtil.startActivity(context, new Intent(context, OrderDetailsActivity.class)
//        .putExtra(DataManager.KEY_ORDER_ID, orderId)
//        .putExtra(DataManager.KEY_TYPE, EnumUtil.getOrderType(bean.orderClassification)));
//  }
//
//  @Override
//  public void reload() {
//    model.getShowModel(true);
//  }
//
//  @Override
//  public void onClickModifyPwd() {
//    mStartActivity(PwdModifyActivity.class);
//  }
//
//  private Class[] acts = new Class[]{
//      StatisticsActivity.class,
//      StatisticsActivity.class,
//      StatisticsActivity.class,
//      StatisticsActivity.class,
//      StatisticsActivity.class,
//      TeetimeActivity.class,
//      //
//      PermissionCheckActivity.class,
////      FairwayActivity.class,
//      ParkMapActivity.class,
//      ScoreCardActivity.class,
//      OrderActivity.class,
//      //
//      ShoppingActivity.class,
//      MessageActivity.class,
//      CouponActivity.class
//  };
//
//  @Override
//  public void onClickMenu(int index) {
//    if (index <= MenuManager.MENU_PLAYER_STATISTICS) {
//      ClassUtil.startActivity(context, new Intent(context, acts[index])
//          .putExtra(DataManager.KEY_TYPE, mTypes[index])
//      );
//      return;
//    }
//    if (index == MenuManager.MENU_PARK_MAP_STATISTICS) {
//      ClassUtil.startActivity(this, new Intent(this, acts[index])
//          .putExtra(DataUtil.KEY_DATA, mParkData));
//      return;
//    }
//    mStartActivity(acts[index]);
//  }
//
//  private final int REQUEST_UPDATE_PERMISSIONS = REQUEST_LOCAION_PERMISSIONS + 1;
//
//  @Override
//  public void requestUpdatePermission() {
//    showPermissionDialog(PermissionUtils.getCameraNeedPermission(),
//        PermissionUtils.getCameraPermissionNames(), REQUEST_UPDATE_PERMISSIONS);
//  }
//
//  public final int REQUEST_INSTALL_APK_PERMISSION = 124;
//
//  @Override
//  public void toSettingGetPermission() {
//    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
//      Intent intent = new Intent();
//      intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//      Uri uri = Uri.fromParts("package", getPackageName(), null);
//      intent.setData(uri);
//      startActivityForResult(intent, REQUEST_INSTALL_APK_PERMISSION);
//    } else {
//      //注意这个是8.0新API
//      Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
//      startActivityForResult(intent, REQUEST_INSTALL_APK_PERMISSION);
//    }
//    overridePendingTransition(R.anim.in_from_right, R.anim.out_from_left);
//  }
//
//  @Override
//  public void permissionSuccess(int requestCode) {
//    super.permissionSuccess(requestCode);
//    if (requestCode == REQUEST_LOCAION_PERMISSIONS ||
//        requestCode == REQUEST_UPDATE_PERMISSIONS) {
//      switch (requestPermissionType) {
//        case LOCATION:
//          initLocation();
//          break;
//        case UPDATE:
//          if (null != updateManager) {
//            updateManager.showDownloadDialog();
//          }
//          break;
//        default:
//          break;
//
//      }
//    }
//  }
//
//  private final int LOCATION = 1;
//  private final int UPDATE = LOCATION + 1;
//  private int requestPermissionType = LOCATION;
//  private String orderId;
//
//  @Override
//  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//    super.onActivityResult(requestCode, resultCode, data);
//    if (requestCode == REQUEST_INSTALL_APK_PERMISSION && null != updateManager) {
//      //再次执行安装流程，包含权限判断
//      updateManager.installApk();
//      return;
//    }
//    // 扫描二维码/条码回传
//    if (requestCode == REQUEST_QR_CODE) {
//      String content = DataUtil.getStringExtra(data, Constant.CODED_CONTENT);
//      Log.e("content-----------", content + "----");
//      if (Util.isEquals(DataUtil.getJsonString(content, DataManager.KEY_TYPE),
//          OrderManager.ORDER_CONFIRM)) {
//        orderId = DataUtil.getJsonString(content, DataManager.KEY_ORDER_ID);
//        model.confirmOrder(orderId,
//            DataUtil.getJsonString(content, DataManager.KEY_ORDER_CODE));
//        return;
//      }
////      Util.show("抱歉，暂未提供此功能");
//      return;
//    }
//    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//      if (DataUtil.arrayIsNull(permissions)) {
//        return;
//      }
//      // 检查该权限是否已经获取
//      int i = ContextCompat.checkSelfPermission(this, permissions[0]);
//      // 权限是否已经 授权 GRANTED---授权  DINIED---拒绝
//      if (i == PackageManager.PERMISSION_GRANTED && null != updateManager) {
//        updateManager.showDownloadDialog();
//      }
//    }
//
//    if (requestCode == REQUEST_LOCAION_PERMISSIONS ||
//        requestCode == REQUEST_UPDATE_PERMISSIONS) {
//      if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M
//          || CollectionUtil.arrayIsNull(permissions)) {
//        return;
//      }
//      // 检查该权限是否已经获取
//      int i = ContextCompat.checkSelfPermission(this, permissions[0]);
//      // 权限是否已经 授权 GRANTED---授权  DINIED---拒绝
//      if (i == PackageManager.PERMISSION_GRANTED) {
//        switch (requestPermissionType) {
//          case LOCATION:
//            initLocation();
//            break;
//          case UPDATE:
//            if (null != updateManager) {
//              updateManager.showDownloadDialog();
//            }
//            break;
//          default:
//            break;
//        }
//      }
//    }
//
//  }
//
//  @Override
//  public void getDataFail(String msg, int code) {
//
//  }
//
//  @Override
//  public void locationSuccess(AMapLocation location) {
//    Log.e("main------" + index, "locationSuccess-------------");
////    WsStompManager.getInstance().sendLatLngStomp();
//    if (!isSendSuccess ||
//        LocationService.isOutDis(LocationService.lastLatlng, LocationService.newLatlng)) {
//      Log.e("mainsend------" + sendIndex, "-------------");
//      WsStompManager.getInstance().sendLatLngStomp();
//    }
////    WsStompManager.getInstance().sendLatLngStomp();
//  }
//
//  private int index;
//  private int sendIndex;
//
//  @Override
//  public void locationFail() {
//    Log.e("lo-fail---------", "------------");
//    LocationService.startLocation();
////    LocationManager.getInstance().startLocation(this, this);
//  }
//
//
//  @Override
//  public void onMessage(String msg) {
//
//  }
//
//  @Override
//  public void onOutRange() {
//
//  }
//
//  @Override
//  public void onSendSuccess() {
//    isSendSuccess = true;
//  }
//
//  @Override
//  public void onSendFail() {
//    isSendSuccess = false;
//  }
//
//  @Override
//  protected void getPermissionSuccess() {
//    gotoQrCodeActivity();
//  }
//
//  @Override
//  protected void getPermissionFail() {
//    try {
//      Uri packageURI = Uri.parse("package:" + getPackageName());
//      ClassUtil.startActivity(context,
//          new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI)
//              .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
//    } catch (Exception e) {
//
//    }
//
//    Util.show("没有权限无法扫描");
//  }
//}
